package es.ucm.fdi.xtremeaudio.vista;

import java.awt.Graphics;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JPanel;

/**
 * <ul>
 * <li><b>Proyecto:</b> XtremeAudio</li>
 * <li><b>Grupo:</b> 7 <i>(4&deg;B)</i></li>
 * <li><b>Asignatura:</b> Ingenier&iacute;a del Software</li>
 * <li><b>Curso:</b> 2010/2011</li>
 * <li><b>Centro:</b> Universidad Complutense de Madrid</li>
 * </ul>
 * 
 * El <b>JPanelImagen</b> extiende {@link JPanel} para que pueda mostrar una
 * imagen de fondo.
 * 
 * @author &Aacute;lvaro G&oacute;mez Porris
 * @author Elena Hern&aacute;ndez Delgado
 * @author Mar&iacute;a Trinidad Mart&iacute;n Campos
 * @author Mois&eacute;s Mart&iacute;nez Montes
 * @author Mat&iacute;as Salinero Delgado
 * 
 * @version %I%, %G%
 * 
 * @since 1.0
 */
public class JPanelImagen extends JPanel {

	private static final long serialVersionUID = 1L;

	private Image fondo;

	/**
	 * Constructora.
	 * 
	 * @param ruta
	 *            La ruta relativa de la imagen asociada al fondo del panel.
	 */
	public JPanelImagen(String ruta) {
		if (ruta != null) {
			fondo = new ImageIcon(JPanelImagen.class.getClassLoader()
					.getResource(ruta)).getImage();
		} else {
			fondo = null;
		}
	}

	public Image getFondo() {
		return fondo;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see javax.swing.JComponent#paint(java.awt.Graphics)
	 */
	@Override
	public void paint(Graphics g) {
		if (fondo != null) {
			g.drawImage(fondo, 0, 0, getWidth(), getHeight(), this);
			setOpaque(false);
		} else {
			setOpaque(true);
		}
		super.paint(g);
	}

	/**
	 * @param fondo
	 *            La nueva imagen de fondo.
	 */
	public void setFondo(Image fondo) {
		this.fondo = fondo;
	}
}
